Computers and computer applications form the central tools for productivity in the modern computer age. Productivity applications include such applications as word processors, spreadsheet programs, graphics design development environment, web design environments, application development environments, and the like. One common thread to these various productivity applications is that they typically accept input from a user who is developing, designing, or writing some piece of work product.
With the advent of graphical user interfaces (GUIs) and pointing devices, users have generally been allowed to exert a more free control over the design canvas in productivity applications. Users may select text, graphics, images, screen locations, and the like in order to work with or edit a particular piece of the work product. One feature that has been developed to make editing more efficient is the undo feature. Undo, which typically also includes its complement “redo”, is the feature that stores up to a certain number of consecutive edit signals that have been applied to a particular piece of work. In general, undo/redo employs a last in, first out (LIFO) standard for maintaining edits in its allotted memory. If a user desires to cancel or go back to a previous version of the work piece, he or she may step through the undo stack, i.e., the storage data structure that maintains the previous states of the work piece, undoing each consecutive edit that the user has made. The complementary redo stack stores the undone edits so that the user, if he or she steps back too far in the undo stack, may easily redo the edits in the same sequence. Once the user performs a new edit, the undo stack begins storing the edits from that newly edited point. The previous edits in the stack before the new edit still remain; however, a new sequence of edits begin.
As work projects become larger and more complex, users will often spend a considerable amount of time and effort moving between various locations in the document or between various objects in the document. Additionally, many graphics-related productivity applications include layering features or timelines that add another layer of complexity to traversing various portions or objects within a document. For example, a single graphics page may contain hundreds or even thousands of layers stacked on top of one another. Layers may also be hierarchically arranged, furthering the difficulty in selecting one from another. Each layer may have its own object or feature or other item that the user/developer may need to work with in the development of the project. It is very tedious to move back and forth between layers and between objects within a layer. Developers will typically use a layers panel to select from, as it may be difficult or even impossible to accurately select a particular layer using a pointing device with a sub-selection tool on the design view canvas of the application.
Moreover, with a large number of layers or a timeline that is very long, it may take a considerable amount of physical manipulation of the pointing device to move between selections even in the layers panels or timeline representations. The undo/redo feature does nothing to assist the user/developer in moving between the various portions of the documents, layers or time frames. Its job is merely to step through and undo or then redo a particular sequential edit. Therefore, the user/developer is left to the tedious tasks of moving between these sometimes numerous layers and frames of a timeline or scrolling between portions of a document.